var IUPAC=new Object();
/*IUPAC.A='[ARWMDHVN]';
IUPAC.T='[TYWKBDHN]';
IUPAC.C='[CYSMBHVN]';
IUPAC.G='[GRSKBDVN]';
IUPAC.R='[AGR]';
IUPAC.Y='[CTY]';
IUPAC.S='[GCS]';
IUPAC.W='[ATW]';
IUPAC.K='[GTK]';
IUPAC.M='[ACM]';
IUPAC.B='[CGTB]';
IUPAC.D='[AGTD]';
IUPAC.H='[CATH]';
IUPAC.V='[CGAV]';
IUPAC.N='[TCGARYSWKMBDHVN]';*/
IUPAC.A='[A]';
IUPAC.T='[T]';
IUPAC.C='[C]';
IUPAC.G='[G]';
IUPAC.R='[AGR]';
IUPAC.Y='[CTY]';
IUPAC.S='[GCS]';
IUPAC.W='[ATW]';
IUPAC.K='[GTK]';
IUPAC.M='[ACM]';
IUPAC.B='[CGTB]';
IUPAC.D='[AGTD]';
IUPAC.H='[CATH]';
IUPAC.V='[CGAV]';
IUPAC.N='[TCGARYSWKMBDHVN]';

var comObj={};
comObj.A='T';
comObj.T='A';
comObj.C='G';
comObj.G='C';
comObj.R='Y';
comObj.Y='R';
comObj.K='M';
comObj.M='K';
comObj.B='V';
comObj.V='B';
comObj.D='H';
comObj.H='D';

function findModel(text,model,toDiv,color){
  text=$.trim(text);
  if(!text) return;
  model=$.trim(model);
  if(model.length<2) return;
  var m= model + '|' + getCompliment(model);
  m=$.map(m.toUpperCase().split(''),function(value){ return IUPAC[value]? IUPAC[value] + '\\s*':value;}).join('');//.join('\\s*');
  //$(toDiv).empty().append(m + '<br />');
  m= new RegExp('(' + m + ')','ig');
  var reptext='<span style="color:' + (color ? color : 'red') + '">';
  $(toDiv).empty().append(text).replaceText(m,reptext + '$1</span>');
}

function getCompliment(text){
  if(!text) return '';
  
  var p=text.toUpperCase().split('');
  var r='';
  for(var i=p.length-1;i>=0;i--){
    r += comObj[p[i]] ? comObj[p[i]] : p[i];
  }
  return r;
}
